const api = require('../../api/index');
// console.log(api)
Page({
  /**
   * 页面的初始数据
   */
  data: {
    isSigin: false,
    spotMap: {
      // y2023m8d3: 'deep-spot',
      // y2022m5d10: 'spot',
      // y2022m6d10: 'spot',
      // y2022m7d10: 'spot',
      // y2022m8d10: 'spot',
      // y2022m10d1: 'spot',
      // y2023m7d31: 'spot',
      // y2023m8d1: 'spot',
    },
    // 例子，今天之后的日期不能被选中
    // disabledDate({ day, month, year }) {
    //   const now = new Date();
    //   const date = new Date(year, month - 1, day);
    //   return date > now;
    // },
    // 需要改变日期时所使用的字段
    changeTime: '',
    // 存储已经获取过的日期
    dateListMap: [

    ],
    count: 0
  },
  // 获取日期数据，通常用来请求后台接口获取数据
  getDateList({detail}) {
    // 检查是否已经获取过该月的数据
    if (this.filterGetList(detail)) {
      // 获取数据
      // console.log(detail, '获取数据');
    }
  },
  // 过滤重复月份请求的方法
  filterGetList({setYear,setMonth}) {
    const dateListMap = new Set(this.data.dateListMap);
    const key = `y${setYear}m${setMonth}`;
    if (dateListMap.has(key)) {
      return false;
    }
    dateListMap.add(key);
    this.setData({
      dateListMap: [...dateListMap],
    });
    return true;
  },
  // 日期改变的回调
  selectDay({
    detail
  }) {
    // console.log(detail, 'selectDay detail');
  },
  // 展开收起时的回调
  openChange({detail}) {
    // console.log(detail, 'openChange detail');
  },
  changetime() {
    this.setData({
      changeTime: '2022/1/1',
    });
  },
  // 添加签到
  addSiginFn() {
    // console.log(111);
    let dt = new Date();
    let yy = dt.getFullYear();
    let mm = dt.getMonth() + 1;
    let dd = dt.getDate();
    let openid = wx.getStorageSync('openid');
    let that = this;
    if(openid){
        api.querySiginFunc(yy,mm,dd,openid)
        .then(
          content=>{
            // console.log('1.0',content)
            if(content.data.length == 0 && content.errMsg == "collection.get:ok"){
              // 未签到
              api.addSiginFunc(yy,mm,dd,openid)
              .then(
                 rows=>{
                    // console.log('2.0',rows)
                    if(rows.errMsg == "collection.add:ok"){
                      that.setData({
                          isSigin: true
                      })
                      that.getCountFn();
                    }
                    else {
                      wx.showToast({
                        title: '签到失败。',
                        icon: 'none'
                      })
                    }
                   
                 }
              )
            }else {
              // 已经签到
              wx.showToast({
                title: '今日已签到。',
                icon: 'none',
              })
            }
          }
        )
    }
    else {
      wx.showToast({
        title: '请先登录再签到',
        icon: 'none',
      })
    }
  },
  async initSiginFn() {
    let dt = new Date();
    let yy = dt.getFullYear();
    let mm = dt.getMonth() + 1;
    let dd = dt.getDate();
    let openid = wx.getStorageSync('openid');
    let that = this;
    if(openid){
        // 今日是否签到
       await api.querySiginFunc(yy,mm,dd,openid)
        .then(
          content=>{
            // console.log('1.0',content)
            if(content.data.length == 0){
              // 未签到
              this.setData({isSigin: false})
            }else {
              // 已经签到
              this.setData({isSigin: true})
            }
          }
        )
        // 所有签到
       await api.listSiginFunc(openid)
        .then(
           content=>{
              //console.log('3.0',content)
              if(content.errMsg == "collection.get:ok") {
                  let data = content.data;
                  let arr = data.map(item=>{
                    return `y${item.year}m${item.month}d${item.day}`
                  })
                  // console.log(arr)
                  let spotMap = {};
                  arr.forEach(key=>{
                    spotMap[key] = 'spot'
                  })
                  that.setData({
                    spotMap
                  })
              }
           }
        )
    }
    else {
      wx.showToast({
        title: '请先登录。',
        icon: 'none',
      })
    }

    
  },
  async getCountFn(){
    await api.siginCountFunc().then(
      res =>{
        // console.log(res)
        this.setData({
          count: res.total 
        })
      }
    )
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
      this.initSiginFn()
      this.getCountFn();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.initSiginFn()
    this.getCountFn();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  // 分享
  onShareAppMessage(){
    let user_id = wx.getStorageSync('user_id')
    return {
        title: '掌上刷题宝',
        path:  "pages/index/index?code="+user_id
        // ,
        // imageUrl: 'https://7761-wang2023-5gng88vf3d3ea81f-1256272801.tcb.qcloud.la/banner/banner4.png?sign=c9df27956febc2821014197525072cf2&t=1691587194'
    }
  },
  onShareTimeline(){
    let user_id = wx.getStorageSync('user_id')
    return {
      title: '立即签到',
      query: 'code='+user_id
    }
  }
})